package com.hutou.chuangke.uitl;

import java.util.Stack;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * @author TYH E-mail:
 * @version 创建时间：2015-8-10 上午10:21:19
 * 类说明 activity管理类
 */
public class ActivityManager {
	private static Stack<Activity> activityStack;
	private static ActivityManager instance;
	
	private ActivityManager(){
	}
	
	/**
	 * 单一实例
	 */
	public static ActivityManager getInstatnce(){
		if(instance == null){
			instance = new ActivityManager();
		}
		return instance;
	}
	
	/**
	 * 添加activity到stack
	 * @param activity
	 */
	public void addActivity(Activity activity){
		if(activityStack == null){
			activityStack = new Stack<Activity>();
		}
		activityStack.add(activity);
	}
	/**
	 * 获取当前Activity（堆栈中最后一个压入的）
	 */
	public Activity currentActivity(){
		Activity activity=activityStack.lastElement();
		return activity;
	}
	/**
	 * 结束当前Activity（堆栈中最后一个压入的）
	 */
	public void finishActivity(){
		Activity activity=activityStack.lastElement();
		finishActivity(activity);
	}
	/**
	 * 结束指定的Activity
	 */
	public void finishActivity(Activity activity){
		if(activity!=null){
			activityStack.remove(activity);
			activity.finish();
			activity=null;
		}
	}
	/**
	 * 结束指定类名的Activity
	 */
	public void finishActivity(Class<?> cls){
		for (Activity activity : activityStack) {
			if(activity.getClass().equals(cls) ){
				finishActivity(activity);
			}
		}
	}
	
	public void ShowAllActivity(){
		for(Activity activity :activityStack){
		}
	}
	
	/**
	 * 结束所有Activity
	 */
	public void finishAllActivity(){
		for (int i = 0, size = activityStack.size(); i < size; i++){
            if (null != activityStack.get(i)){
            	activityStack.get(i).finish();
            }
	    }
		activityStack.clear();
	}
	
	public void finishAllExcepLast(){
		for (int i = 0, size = activityStack.size(); i < size-1; i++){
            if (null != activityStack.get(i)){
            	activityStack.get(i).finish();
            }
	    }
		activityStack.clear();
	}
	
	/**
	 * 退出应用程序
	 */
	public void AppExit(Context context) {
		try {
			 finishAllActivity();
			 Intent startMain = new Intent(Intent.ACTION_MAIN);
             startMain.addCategory(Intent.CATEGORY_HOME);
             startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             context.startActivity(startMain); 
             System.exit(0); 
//			ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
//			activityMgr.restartPackage(context.getPackageName());
//			System.exit(0);
		} catch (Exception e) {	}
	}
}
